﻿using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Peekaboo2008.common;
using Peekaboo2008.model;
using Peekaboo2008.dao;


namespace Peekaboo2008.view
{
    public partial class MainForm : Form
    {
        ArrayList listform = new ArrayList();
         
        public MainForm()
        {
            InitializeComponent();
            tslVaiTro.Text = "Vai Trò : "+Constants.USER_LOGIN.TenVaiTro;
            tslTenNV.Text = "Nhân Viên : " + Constants.USER_LOGIN.HoTen;
            LoadValue();
            String applicationPath = Application.StartupPath;
            timer.Start();
        }

        /**************************/
        // Ham Lay du Lieu Menu
        /*************************/
        public void LoadValue()
        {
            int i = 0; 
            String roleID = Constants.USER_LOGIN.MaVaiTro;
            ArrayList sysRoleMenuModelList = SysFunctionDAO.getListFunctionByRole(roleID);
            Constants.MENU_LIST = new ArrayList();
            foreach (SysRoleFuctionModel model in sysRoleMenuModelList)
            {
                
                FuctionModel functionModel = new FuctionModel();
                functionModel.MenuItem = new ToolStripMenuItem();

                if (model.FuctionImage.Equals(""))
                {
                    Image img = null;
                    functionModel.MenuItem.Image = img;
                }
                else
                {
                    
                    Image img = Image.FromFile(model.FuctionImage);
                    functionModel.MenuItem.Image = img;
                }
         
                functionModel.MenuItem.Name = model.FuctionName;
                functionModel.MenuItem.Text = "&" + model.FuctionName;
                functionModel.FunctionID = model.FunctionID;
                functionModel.MenuItem.Size = new System.Drawing.Size(135, 22);
                functionModel.FunctionImage = model.FuctionImage;
                functionModel.FunctionLink = model.FuctionLink;
                functionModel.ParentMenuID = model.ParentID;

                Constants.MENU_LIST.Add(functionModel);
            }

            if (Constants.MENU_LIST.Count > 0)
            {
                //MenuStrip menuStrip = new MenuStrip();
               //menuStrip.Location = new System.Drawing.Point(0, 0);
                //menuStrip.Name = "menuStrip";
                //menuStrip.Text = "menuStrip";
               //menuStrip.Size = new System.Drawing.Size(920, 24);
               //menuStrip.TabIndex = 0;
               //menuStrip.BackColor = System.Drawing.SystemColors.ControlDark;
                foreach (FuctionModel obj in Constants.MENU_LIST)
                {
                    if (obj.ParentMenuID.Equals(String.Empty))
                    {
                        
                        menuStrip.Items.Add(obj.MenuItem);
                        obj.MenuItem.Click += new EventHandler(menuClickAction);
                        foreach (FuctionModel subObj in Constants.MENU_LIST)
                        {
                            if (subObj.ParentMenuID.Equals(obj.FunctionID))
                            {
                                if (subObj.MenuItem.Name.Equals(""))
                                {
                                    ToolStripSeparator tss = new ToolStripSeparator();
                                    obj.MenuItem.DropDownItems.Add(tss);
                                }
                                else
                                {
                                    obj.MenuItem.DropDownItems.Add(subObj.MenuItem);
                                    subObj.MenuItem.Click += new EventHandler(menuClickAction);
                                }
                            }
                        }
                    }
                }

                this.Controls.Add(menuStrip);
            }
        }

        private void menuClickAction(object sender, EventArgs e)
        {
            ToolStripMenuItem menuItem = (ToolStripMenuItem)sender;
            if (menuItem.Name.Equals("4 - Đăng Xuất"))
            {
                Constants.USER_LOGIN = new ThanhVienModel();
                Login formDangNhap = new Login();
                this.Visible = false;
                formDangNhap.ShowDialog();
              
            }
            else if (menuItem.Name.Equals("1 - Quản Lý Nhân Viên"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormQuanLyNhanVien formNhanVien = new FormQuanLyNhanVien();
                formNhanVien.MdiParent = this;
                formNhanVien.Show();
                listform.Add(formNhanVien);
            }
            else if (menuItem.Name.Equals("1 - Khu Vực"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormKhuVuc formKhuVuc = new FormKhuVuc();
                formKhuVuc.MdiParent = this;
                formKhuVuc.Show();
                listform.Add(formKhuVuc);
            }
            else if (menuItem.Name.Equals("2 - Nhóm Khách Hàng"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormNhomKhachHang formNhomKhachHang = new FormNhomKhachHang();
                formNhomKhachHang.MdiParent = this;
                formNhomKhachHang.Show();
                listform.Add(formNhomKhachHang);
            }
            else if (menuItem.Name.Equals("3 - Nhóm Nhà Cung Cấp"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormNhomNCC formNhomNCC = new FormNhomNCC();
                formNhomNCC.MdiParent = this;
                formNhomNCC.Show();
                listform.Add(formNhomNCC);
            }
            else if (menuItem.Name.Equals("4 - Khách Hàng"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormKhachHang formKhachHang = new FormKhachHang();
                formKhachHang.MdiParent = this;
                formKhachHang.Show();
                listform.Add(formKhachHang);
            }
            else if (menuItem.Name.Equals("5 - Nhà Cung Cấp"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormNhaCungCap formNhaCungCap = new FormNhaCungCap();
                formNhaCungCap.MdiParent = this;
                formNhaCungCap.Show();
                listform.Add(formNhaCungCap);
            }
            else if (menuItem.Name.Equals("6 - Ngành Hàng"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormNganhHang formNganhHang = new FormNganhHang();
                formNganhHang.MdiParent = this;
                formNganhHang.Show();
                listform.Add(formNganhHang);
            }
            else if (menuItem.Name.Equals("7 - Nhóm Hàng Hóa"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormNhomHangHoa formNhomHangHoa = new FormNhomHangHoa();
                formNhomHangHoa.MdiParent = this;
                formNhomHangHoa.Show();
                listform.Add(formNhomHangHoa);
            }
            else if (menuItem.Name.Equals("8 - Sản Phẩm Hàng Hóa"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormSanPhamHangHoa formSanPham = new FormSanPhamHangHoa();
                formSanPham.MdiParent = this;
                formSanPham.Show();
                listform.Add(formSanPham);
            }
            else if (menuItem.Name.Equals("9 - Danh Mục Đơn Vị Qui Đổi"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormDonViQuiDoi formDonViQuiDoi = new FormDonViQuiDoi();
                formDonViQuiDoi.MdiParent = this;
                formDonViQuiDoi.Show();
                listform.Add(formDonViQuiDoi);
            }
            else if (menuItem.Name.Equals("1 - Xuất Bán Hàng Hóa"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormXuatBanHangHoa formXuatBangHangHoa = new FormXuatBanHangHoa();
                formXuatBangHangHoa.MdiParent = this;
                formXuatBangHangHoa.Show();
                listform.Add(formXuatBangHangHoa);
            }
            else if (menuItem.Name.Equals("2 - Xuất Hàng Trả Nhà Cung Cấp"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormXuatTraNhaCungCap formXuatTraNhaCungCap = new FormXuatTraNhaCungCap();
                formXuatTraNhaCungCap.MdiParent = this;
                formXuatTraNhaCungCap.Show();
                listform.Add(formXuatTraNhaCungCap);
            }
            else if (menuItem.Name.Equals("4 - Nhập Hàng Từ Nhà Cung Cấp"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormNhapHangTuNCC formNhapHangTuNCC = new FormNhapHangTuNCC();
                formNhapHangTuNCC.MdiParent = this;
                formNhapHangTuNCC.Show();
                listform.Add(formNhapHangTuNCC);
            }
            else if (menuItem.Name.Equals("E - Thống kê hàng hóa bán ra theo nhóm hàng"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormBaoCaoHangBanTrongKhoangNgayTheoNhomHang formBaoCaoHangBanTrongKhoangNgayTheoNhomHang = new FormBaoCaoHangBanTrongKhoangNgayTheoNhomHang();
                formBaoCaoHangBanTrongKhoangNgayTheoNhomHang.MdiParent = this;
                formBaoCaoHangBanTrongKhoangNgayTheoNhomHang.Show();
                listform.Add(formBaoCaoHangBanTrongKhoangNgayTheoNhomHang);
            }
            else if (menuItem.Name.Equals("F - Thống kê hàng hóa bán ra theo nhân viên"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormBaoCaoHangBanTrongKhoangNgayTheoNhanVien formBaCaoHangBanTrongKhoangNgayTheoNhanVien = new FormBaoCaoHangBanTrongKhoangNgayTheoNhanVien();
                formBaCaoHangBanTrongKhoangNgayTheoNhanVien.MdiParent = this;
                formBaCaoHangBanTrongKhoangNgayTheoNhanVien.Show();
                listform.Add(formBaCaoHangBanTrongKhoangNgayTheoNhanVien);
            }
            else if (menuItem.Name.Equals("G - Báo cáo chi tiết hàng hóa bán ra"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormBaoCaoChiTietHangHoaBanRa formBaoCaoChiTietHangHoaBanRa = new FormBaoCaoChiTietHangHoaBanRa();
                formBaoCaoChiTietHangHoaBanRa.MdiParent = this;
                formBaoCaoChiTietHangHoaBanRa.Show();
                listform.Add(formBaoCaoChiTietHangHoaBanRa);
            }
            else if (menuItem.Name.Equals("1 - Bán hàng và thu tiền theo ngày"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormBaoCaoBanHangVaThuTienTheoNgay formBaoCaoBanHangVaThuTienTheoNgay = new FormBaoCaoBanHangVaThuTienTheoNgay();
                formBaoCaoBanHangVaThuTienTheoNgay.MdiParent = this;
                formBaoCaoBanHangVaThuTienTheoNgay.Show();
                listform.Add(formBaoCaoBanHangVaThuTienTheoNgay);
            }
            else if (menuItem.Name.Equals("7 - Nhập Số Nợ Đầu Khi Bắt Đầu Sủ Dụng Phần Mềm"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormCongNo formCongNo = new FormCongNo();
                formCongNo.MdiParent = this;
                formCongNo.Show();
                listform.Add(formCongNo);
            }
            else if (menuItem.Name.Equals("8 - Nhập Số Nợ Đầu Khi NCC Bắt Đầu Sủ Dụng Phần Mềm"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormCongNoNhaCungCap formCongNoNCC = new FormCongNoNhaCungCap();
                formCongNoNCC.MdiParent = this;
                formCongNoNCC.Show();
                listform.Add(formCongNoNCC);
            }
            else if (menuItem.Name.Equals("3 - Xuất Bán Thiết Bị Mã Vạch"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormXuatBanHangHoaByBarcode formXuatBanHangHoaByBarcode = new FormXuatBanHangHoaByBarcode();
                formXuatBanHangHoaByBarcode.MdiParent = this;
                formXuatBanHangHoaByBarcode.Show();
                listform.Add(formXuatBanHangHoaByBarcode);
            }
            else if (menuItem.Name.Equals("2 - Tổng hợp thu chi theo ngày"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormBaoCaoTongHopThuChiTheoNgay formBaoCaoTongHopThuChiTheoNgay = new FormBaoCaoTongHopThuChiTheoNgay();
                formBaoCaoTongHopThuChiTheoNgay.MdiParent = this;
                formBaoCaoTongHopThuChiTheoNgay.Show();
                listform.Add(formBaoCaoTongHopThuChiTheoNgay);
            }
            else if (menuItem.Name.Equals("5 - Hàng hóa tồn kho theo tất cả các nhóm hàng"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormBaoCaoHangTonTheoTatCaNhomHang formBaoCaoHangTonTheoTatCaNhomHang = new FormBaoCaoHangTonTheoTatCaNhomHang();
                formBaoCaoHangTonTheoTatCaNhomHang.MdiParent = this;
                formBaoCaoHangTonTheoTatCaNhomHang.Show();
                listform.Add(formBaoCaoHangTonTheoTatCaNhomHang);
            }
            else if (menuItem.Name.Equals("6 - Hàng hóa tồn kho theo từng nhóm hàng"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormBaoCaoHangTonTheoTungNhomHang formBaoCaoHangTonTheoTungNhomHang = new FormBaoCaoHangTonTheoTungNhomHang();
                formBaoCaoHangTonTheoTungNhomHang.MdiParent = this;
                formBaoCaoHangTonTheoTungNhomHang.Show();
                listform.Add(formBaoCaoHangTonTheoTungNhomHang);
            }
            else if (menuItem.Name.Equals("3 - Hàng hóa tồn kho theo tất cả ngành hàng"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormBaoCaoHangTonTheoTatCaNganhHang formBaoCaoHangTonTheoTatCaNganhHang = new FormBaoCaoHangTonTheoTatCaNganhHang();
                formBaoCaoHangTonTheoTatCaNganhHang.MdiParent = this;
                formBaoCaoHangTonTheoTatCaNganhHang.Show();
                listform.Add(formBaoCaoHangTonTheoTatCaNganhHang);
            }
            else if (menuItem.Name.Equals("4 - Hàng hóa tồn kho theo từng ngành hàng"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormBaoCaoHangTonTheoTungNganhHang formBaoCaoHangTonTheoTungNganhHang = new FormBaoCaoHangTonTheoTungNganhHang();
                formBaoCaoHangTonTheoTungNganhHang.MdiParent = this;
                formBaoCaoHangTonTheoTungNganhHang.Show();
                listform.Add(formBaoCaoHangTonTheoTungNganhHang);
            }
            else if (menuItem.Name.Equals("D - Báo cáo hàng tồn dưới định mức"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormBaoCaoHangTonDuoiDinhMuc formBaoCaoHangTonDuoiDinhMuc = new FormBaoCaoHangTonDuoiDinhMuc();
                formBaoCaoHangTonDuoiDinhMuc.MdiParent = this;
                formBaoCaoHangTonDuoiDinhMuc.Show();
                listform.Add(formBaoCaoHangTonDuoiDinhMuc);
            }
            else if (menuItem.Name.Equals("3 - Thông Tin Sử Dụng"))
            {
                foreach (Form f in listform)
                {
                    f.Close();
                }
                FormSuaThongTinNhanVien formSuaThongTinNhanVien = new FormSuaThongTinNhanVien();
                formSuaThongTinNhanVien.MdiParent = this;
                formSuaThongTinNhanVien.Show();
                listform.Add(formSuaThongTinNhanVien);
            }
         }
        
        private void timer_Tick(object sender, EventArgs e)
        {
            tslThoiGian.Text = "Thời gian: " + CommonDAO.getTime() + " |Ngày: " + CommonDAO.getDate();
        }

        private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            Application.Exit();
        }
        
    }
}
